package com.cskaoyan.javase.file.api3.create1;

/**
 * @description: File类的创建功能
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import java.io.File;
import java.io.IOException;

/**
 * //只负责创建文件，目录路径如果不存在，会报错而不是帮你创建
 * public boolean createNewFile()
 *
 * //只负责创建目录，但只能创建单层目录，如果有多级目录不存在的话，创建失败
 * public boolean mkdir()
 *
 * //只负责创建目录，但可以创建多级目录，如果多级目录不存在，则帮你全部创建
 * public boolean mkdirs()
 *
 * 总结:
 * 不能通过文件的后缀名判断是文件还是文件夹
 *  createNewFile()只能创建文件
 *  mkdir()
 *  mkdirs() 只能创建文件夹
 *
 */
public class Demo {
    public static void main(String[] args) {
        //public boolean createNewFile()
        //创建file对象，告诉这个方法创建什么文件
        //File f1 = new File("E:\\1\\1.txt");
        //Unhandled exception: java.io.IOException
        //System.out.println(f1.createNewFile());
        //如果创建的文件目录不存在，怎么办？
        //File f2 = new File("E:\\2\\1.txt");
        //该方法只能用来创建文件，如果有目录不存在，它不会帮你自动创建，只会报错
        //System.out.println(f2.createNewFile());
        //如果该文件已经存在，那么程序不会报错，而是返回一个false 表示创建失败
        //File f3 = new File("E:\\2.md"); //思考：这里创建的是文件1还是文件夹2？或者报错3
        //这种情况创建了一个文件叫2，不是创建文件夹 该方法只能用来创建文件，不能创建文件夹，也不可能创建出文件夹
        //System.out.println(f3.createNewFile());


        //只负责创建目录，但只能创建单层目录，如果有多级目录不存在的话，创建失败
      //public boolean mkdir() dos指令中创建新的文件夹 这个只能用来创建文件夹 不能创建文件
        File file = new File("E:\\1\\2");
        //System.out.println(file.mkdir()); //这个方法不会抛出编译时异常
        File f2 = new File("E:\\1\\2\\2\\2\\2\\2\\2\\1\\1\\2\\3\\54\\5");
        System.out.println(f2.mkdir());
        //思考: 如果我要在e:1文件夹下创建test.mp3
        File f3 = new File("E:\\1\\test.mp3");
        System.out.println(f3.mkdir()); //1,创建失败报错 2,返回false不报错 3,创建文件夹 4,创建文件
        //mkdir方法在开发中几乎不用 因为它不能创建多级目录
        //正常开发 无论创建什么目录,直接mkdirs即可
        System.out.println(f2.mkdirs());


    }
}


